ライターインスタンスとリードレプリカのインスタンスクラスを同時に変更できるのか教えてください
困っていた内容
Aurora PostgreSQL で利用しているインスタンスのインスタンスクラスを CDK を利用して xlarge から 2xlarge へ変更しスタックのデプロイを実施したところ、リーダーインスタンスとリードレプリカが同時にシャットダウン & 再起動されました。
Aurora ではないマルチ AZ の RDS の場合、スタンバイインスタンスからインスタンスクラスが変更された後にフェールオーバーが実施されると AWS ドキュメントに記載があります。
マルチ AZ 配置は、Amazon RDS MySQL の変更中のダウンタイムを削減するのに役立ちますか?
スタンバイインスタンスが最初に変更され、フェイルオーバーが発生します。フェイルオーバー後、新しいスタンバイが変更されます。
RDS ではユーザーからスタンバイインスタンスの設定を変更できないので上記のような挙動になると思うのですが、Aurora の場合はライターインスタンスとリードレプリカのインスタンスクラスの変更を同時に行うことができるのでしょうか?
CDK を利用してインスタンスクラスを変更するにあたり、Aurora の挙動が知りたいです。
結論
Aurora では、リーダーインスタンスとリードレプリカのインスタンスクラスを同時に変更することができます。 検証環境で検証をしてみました。
やってみた
マネジメントコンソール上で、ライターインスタンスのインスタンスクラスを t3.medium から t3.large へ変更した直後に、リードレプリカのインスタンスクラスも t3.medium から t3.large へ変更したところ、エラーや警告の発生無しでインスタンスクラスの変更を行うことができました。
まとめ
同時にインスタンスクラスを変更することでダウンタイムが長くなることもあり、検証環境以外では推奨されない手順のご紹介となりました。
ライターインスタンス 1 台とリードレプリカ 1 台の Aurora クラスター構成において、インスタンスクラスを変更する際にダウンタイムを最小限に抑える方法については、以下のブログ記事をご参照ください。
この記事がどなたかのお役に立てば幸いです。